Emberveil sourcegame/2006Scape Server/src/main/java/com/rs2/net/packets/impl/ItemOnObject.java
package com.rs2.net.packets.impl;
import com.rs2.event.impl.ItemOnObjectEvent;
import com.rs2.Constants;
import com.rs2.game.content.combat.range.DwarfCannon;
import com.rs2.game.content.skills.cooking.Cooking;
import com.rs2.game.content.skills.cooking.CookingTutorialIsland;
import com.rs2.game.content.skills.crafting.JewelryMaking;
import com.rs2.game.content.skills.crafting.Pottery;
import com.rs2.game.content.skills.crafting.Spinning;
import com.rs2.game.content.skills.prayer.Ectofuntus;
import com.rs2.game.items.UseItem;
import com.rs2.game.players.Player;
import com.rs2.net.Packet;
import com.rs2.net.packets.PacketType;
import com.rs2.world.Boundary;
import com.rs2.world.clip.Region;
public class ItemOnObject implements PacketType {
@Override
public void processPacket(Player player, Packet packet) {
packet.readUnsignedWord();
int objectId = packet.readSignedWordBigEndian();
int objectY = packet.readSignedWordBigEndianA();
packet.readUnsignedWord();
int objectX = packet.readSignedWordBigEndianA();
int itemId = packet.readUnsignedWord();
player.turnPlayerTo(objectX, objectY);
player.objectX = objectX;
player.objectY = objectY;
player.endCurrentTask();
int distance = 3;
switch (objectId) {
case Ectofuntus.ECTOFUNTUS:
distance = 5;
break;
default:
distance = 3;
break;
}
if (!player.getItemAssistant().playerHasItem(itemId, 1)) {
return;
}
if (!player.goodDistance(player.objectX, player.objectY, player.absX, player.absY, distance)) {
return;
}
if (player.playerRights == 3 && player.debugMode) {
player.getPacketSender().sendMessage(
"Object Id:" + objectId + " ObjectX: " + objectX
+ " ObjectY: " + objectY + ".");
}
player.post(new ItemOnObjectEvent(itemId, objectId));
if (com.rs2.game.content.quests.impl.FishingContest.useItem(player,objectId,objectX,objectY,itemId)) return;
if (com.rs2.game.content.quests.impl.ClockTower.useItem(player,objectId,objectX,objectY,itemId)) return;
if (com.rs2.game.content.quests.impl.TribalTotem.useItem(player,objectId,objectX,objectY,itemId)) return;
if (com.rs2.game.content.quests.impl.MemberQuests.useItem(player,objectId,objectX,objectY,itemId)) return;
switch (objectId) {
case 3044:
if (itemId == 438 || itemId == 436) {
if (player.getItemAssistant().playerHasItem(438) && player.getItemAssistant().playerHasItem(436)) {
if (player.tutorialProgress == 19) {
player.startAnimation(899);
player.getPacketSender().sendSound(352, 100, 1);
player.getPacketSender().sendMessage("You smelt the copper and tin together in the furnace.");
player.getItemAssistant().deleteItem(438, 1);
player.getItemAssistant().deleteItem(436, 1);
player.getPacketSender().sendMessage("You retrieve a bar of bronze.");
player.getItemAssistant().addItem(2349, 1);
player.getDialogueHandler().sendDialogues(3062, -1);
} else if (player.tutorialProgress > 19) {
player.startAnimation(899);
player.getPacketSender().sendSound(352, 100, 1);
player.getPacketSender().sendMessage("You smelt the copper and tin together in the furnace.");
player.getItemAssistant().deleteItem(438, 1);
player.getItemAssistant().deleteItem(436, 1);
player.getPacketSender().sendMessage("You retrieve a bar of bronze.");
player.getItemAssistant().addItem(2349, 1);
}
}
}
break;
case 2645:
if (itemId == 1925) {
player.getItemAssistant().deleteItem(itemId, 1);
player.getItemAssistant().addItem(1783, 1);
} else {
player.getPacketSender().sendMessage("You need a bucket of sand to do that!");
}
break;
case 12269:
case 2732:
case 114:
case 2727:
case 385:
case 14919:
case 2728:
case 9682:
if (player.absX == 3014 && player.absY > 3235 && player.absY < 3238
|| player.absX == 3012 && player.absY == 3239 || player.absX == 3020
&& player.absY > 3236 && player.absY < 3239 || player.absX > 2805
&& player.absX < 2813 || player.absY > 3437 && player.absY < 3442) {
return;
}
if (player.tutorialProgress < 36 || Boundary.isIn(player, Boundary.TUTORIAL)) {
CookingTutorialIsland.cookThisFood(player, itemId, objectId);
} else {
Cooking.startCooking(player, itemId, objectId);
}
break;
case 14921:
case 9390:
case 2781:
case 2785:
case 2966:
case 3294:
case 3413:
case 4304:
case 4305:
case 6189:
case 6190:
case 11009:
case 11010:
case 11666:
case 12100:
case 12809:
if (itemId == 2357) {
JewelryMaking.mouldInterface(player);
/*} else if (itemId == SilverCrafting.SILVER_BAR) {
Menus.sendSkillMenu(c, "silverCrafting");*/
}
if (itemId == 2353 || itemId == 4) {
DwarfCannon.makeBall(player);
}
break;
case 2452:
case 2453:
case 2454:
case 2455:
case 2456:
case 2457:
case 2458:
case 2459:
case 2460:
case 2461:
case 2462:
player.getRC().enterAltar(objectId, itemId);
break;
case 3039:// tutorial island need to check if it needs break or not
if (player.getItemAssistant().playerHasItem(2307)
&& player.tutorialProgress == 8) {
player.startAnimation(896);
player.getPlayerAssistant().requestUpdates();
player.getItemAssistant().deleteItem(2307, 1);
player.getItemAssistant().addItem(2309, 1);
player.getDialogueHandler().sendDialogues(3037, 0);
}
break;
case 10093:
if (player.getItemAssistant().playerHasItem(1927, 1)) {
player.turnPlayerTo(player.objectX, player.objectY);
player.startAnimation(883);
player.getItemAssistant().addItem(2130, 1);
player.getItemAssistant().deleteItem(1927, 1);
player.getPlayerAssistant().addSkillXP(18, Constants.COOKING);
} else {
player.getPacketSender().sendMessage("You need a bucket of milk to do this.");
}
break;
}
if ((itemId == 1710 || itemId == 1708 || itemId == 1706
|| itemId == 1704) && objectId == 2638) { // glory
int amount = player.getItemAssistant().getItemAmount(1710)
+ player.getItemAssistant().getItemAmount(1708)
+ player.getItemAssistant().getItemAmount(1706)
+ player.getItemAssistant().getItemAmount(1704);
int[] glories = { 1710, 1708, 1706, 1704 };
for (int i : glories) {
player.getItemAssistant().deleteItem(i,
player.getItemAssistant().getItemAmount(i));
}
player.startAnimation(832);
player.getItemAssistant().addItem(1712, amount);
}
if (itemId == 954 && objectId == 3827 && player.rope == false) {
player.getPacketSender().object(3828, 3227, 3108, 0, 0, 10);
Region.addObject(3828, 3227, 3108, 0, 0, 0, false);
player.rope = true;
}
if (itemId == 954 && objectId == 3830 && player.rope2 == false) {
player.getPacketSender().object(3828, 3509, 9497, 2, 0, 10);
Region.addObject(3828, 3509, 9497, 2, 0, 0, false);
player.rope2 = true;
}
if (itemId == 1737 || itemId == 1779 && objectId == 2644) {
Spinning.showSpinning(player);
}
if (itemId == 1761 && objectId == 2642) {
Pottery.showUnfire(player);
}
if (itemId == 954 && objectId == 2327) {
player.getPlayerAssistant().movePlayer(2505, 3087, 0);
player.getItemAssistant().deleteItem(954, 1);
} else if (objectId == 2327 && itemId != 954) {
player.getPacketSender().sendMessage("You need a rope to swing across.");
}
if (objectId == 2327 && player.absX == 2511 && player.absY == 3092) {
player.getPlayerAssistant().movePlayer(2510, 3096, 0);
}
UseItem.itemOnObject(player, objectId, objectX, objectY, itemId);
}
}